#include <iostream>

using namespace std;
struct Node
{
    int pos,money;
}space[250];
int OK=0;
int N,L,M,S;

void dfs(int money,int energy,int pos,int space_num)
{
    if(pos+energy>=L)
    {
        OK=1;
        return;
    }
    else
    {
        for(int i=space_num+1;i<=N;i++)
        {
            if((energy>=space[i].pos-pos)&&(money>=space[i].money))
                dfs(money-space[i].money,L,space[i].pos,i);
        }
    }
}


int main()
{
    cin>>N>>L>>M>>S;
    for(int i=0;i<N;i++)
        cin>>space[i].pos>>space[i].money;
    if(M>=L)
    {
      OK=1;
    }
    dfs(S,M,0,0);
    if(OK==1)
        cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    return 0;
}
